package com.example.chapter05;

import android.os.Bundle;
import android.view.View;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

/**
 * 演示通过按钮切换View背景形状的Activity
 * 功能：点击不同按钮，动态改变中间View的背景（圆角矩形/椭圆）
 * 实现方式：通过设置View的backgroundResource切换drawable资源
 */
// 实现View.OnClickListener接口，使当前Activity能作为点击事件的监听器
public class DrawableShapeActivity extends AppCompatActivity
        implements View.OnClickListener {

    // 声明一个View对象，用于展示背景形状（圆角矩形或椭圆）
    private View v_content;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 启用EdgeToEdge模式（Android 11+），让内容延伸到状态栏和导航栏下方
        EdgeToEdge.enable(this);
        // 加载布局文件（activity_drawable_shape.xml）
        setContentView(R.layout.activity_drawable_shape);

        // 初始化展示背景的View：通过ID找到布局中的v_content控件
        v_content = findViewById(R.id.v_content);

        // 给"圆角矩形背景"按钮设置点击监听器
        // this表示当前Activity（因实现了OnClickListener接口，可直接作为监听器）
        findViewById(R.id.btn_rect).setOnClickListener(this);
        // 给"椭圆背景"按钮设置点击监听器
        findViewById(R.id.btn_oval).setOnClickListener(this);

        // 初始设置背景为圆角矩形（引用drawable资源shape_rect_gold）
        v_content.setBackgroundResource(R.drawable.shape_rect_gold);

        // 适配EdgeToEdge模式：设置根布局内边距，避免内容被状态栏/导航栏遮挡
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(android.R.id.content), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }

    /**
     * 点击事件回调方法：处理按钮点击逻辑
     * @param v 被点击的控件（这里是两个按钮）
     */
    @Override
    public void onClick(View v) {
        // 根据被点击控件的ID判断点击的是哪个按钮
        if (v.getId() == R.id.btn_rect) {
            // 若点击"圆角矩形背景"按钮，切换背景为圆角矩形（shape_rect_gold.xml）
            v_content.setBackgroundResource(R.drawable.shape_rect_gold);
        } else {
            // 若点击"椭圆背景"按钮，切换背景为椭圆（shape_oval_rose.xml）
            v_content.setBackgroundResource(R.drawable.shape_oval_rose);
        }
    }
}